//
//  QDTextListViewController.h
//  QDMetroClient
//
//  Created by YueWen on 2019/2/18.
//  Copyright © 2019 YueWen. All rights reserved.
//

#import "NWTableViewController.h"
#import "QDNetWorkingAPI.h"
#import "QDTextListModel.h"
#import "UITableViewCell+QDTextListModelUpdater.h"

NS_ASSUME_NONNULL_BEGIN


/// 适配 接口以及相同数据结构d的通用控制器
@interface QDTextListViewController : NWTableViewController <QDNetWorkingAPIAction>

/// 默认为/static/document/getDocumentList
@property (nonatomic, copy) NSString *url;
/// 请求的类型
@property (nonatomic, copy, nullable) NSString *type;
/// 进行网络请求
@property (nonatomic, strong) QDNetWorkingAPI *requestManager;
/// 是否存在信息
//@property (nonatomic, assign, readonly)BOOL hasDatas;
/// 存放所有的信息
@property (nonatomic, strong)NSMutableArray <QDTextListModel *> *datas;


/// 用于初始化配置 requestManager
- (void)configRequestAPI;
/// 是否自动在viewDidLoad中进行网络请求
- (BOOL)autoRequestInViewDidLoad;
/// 用于下拉加载
- (void)loadData;
/// 用于上拉刷新
- (void)loadMoreData;
/// 网络请求下来数据后，只有api为reset的时候执行
- (void)customDataWithInfoWhenReset:(NSDictionary *)info originInfo:(NSDictionary *)origin;
/// 网络请求下来数据后，进行的数据处理，reset和default都会触发
- (void)customDataWithInfoWhenDefault:(NSDictionary *)info originInfo:(NSDictionary *)origin;

/// 根据下面两个方法产生匹配的UITableViewCell,默认为 QDLineTextTableViewCell
- (UITableViewCell *)tableViewCellForTableViewAtIndexPath:(NSIndexPath *)indexPath;
/// 此处位置cell的identifier，默认为 QDLineTextTableViewCell
- (NSString *)identifierForCellAtIndexPath:(NSIndexPath *)indexPath;
/// 此处位置cell的class
- (Class)classForCellAtIndexPath:(NSIndexPath *)indexPath;

@end

NS_ASSUME_NONNULL_END
